var codigos = new Array();
    
$(document).ready(function(){
    obtenerConstantesHospitalizacion();
    
    $('span.question').hover(function () {
        $(this).append('<div class="tooltip"><p>Información de ayuda.</p></div>');
    }, function () {
        $("div.tooltip").remove();
    });
    
});

/***********************************SEGUIMIENTO*****************************************************************/

function obtenerConstantesHospitalizacion(){
    var method = 'obtenerConstantesHospitalizacionAjax';
    
    $.ajax({
        type: "get",
        url: method,
        dataType: "json",
        data: '',
        cache: false,                        
        success: function(data){
            //console.log(data);
            
            $.each(data, function(k,v){
                codigos[k]=v;
            });
            
        /*$.each(data, function(k,v){
                console.log(k+" -> " +v ); 
            });
            
            for (var i in data){
                var constante = data[i];
                console.log(constante);              
            }*/
        }
    });
}
function obtenerListaPacientesHospitalizadosModal(){
    var method = 'obtenerListaPacientesHospitalizadosAjax';
    
    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: '',
        cache: false,                        
        success: function(data){
            $("#contenido_tabla_modal_seguimiento").html(data);
            $("#myModal").modal("show");            
        }
    });
}

function filaTablaModalSeguimientoCliqueable(fila){
    $("#pacienteForm").val(fila.cells[1].textContent);
    $("#idProcedimientoForm").val(fila.cells[4].textContent);
    $("#idEspecialidadForm").val(fila.cells[5].textContent);
    $("#tipoHospitalizacionForm").val(fila.cells[6].textContent);
    $("#panelesDatos").show();
    mostrarFicha();
    $('#myModal').modal("hide");
    $("#collapseOne").collapse("show");
    $("#collapseTwo").collapse("hide");
    $("#tabla_seguimientos").html("");
    limpiarValoresFichas();
}

function limpiarValoresFichas(){ 
    limpiarValoresFichaEstandar();
    limpiarValoresFichaNeonato();
    limpiarValoresFichaUCI()();
}
function traerListaSeguimientos(){
    var ficha= $("#idEspecialidadForm").get(0).value;
    
    if (ficha==codigos['estandar']) {
        llamadaAjaxListaSeguimientosFichaEstandar();
    } else if (ficha==codigos['neonato']){
        llamadaAjaxListaSeguimientosFichaNeonato();
    } else if (ficha==codigos['uci']){
        llamadaAjaxListaSeguimientosFichaUCI();
    }
}

function llamadaAjaxListaSeguimientosFichaEstandar() {
    var idProcedimientoForm = $("#idProcedimientoForm").get(0).value;
    var method = 'traerListaSeguimientosAjaxFichaEstandar'
    
    /*LLAMADA AJAX*/
    var parametros = {
        "idProcedimiento": idProcedimientoForm
    };
    
    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: parametros,
        cache: false,                        
        success: function(data){
            $("#tabla_seguimientos").html(data);
        }
    });
}

function llamadaAjaxListaSeguimientosFichaNeonato() {
    var idProcedimientoForm = $("#idProcedimientoForm").get(0).value;
    var method = 'traerListaSeguimientosAjaxFichaNeonato'
    
    /*LLAMADA AJAX*/
    var parametros = {
        "idProcedimiento": idProcedimientoForm
    };
    
    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: parametros,
        cache: false,                        
        success: function(data){
            $("#tabla_seguimientos").html(data);
        }
    });
}

function llamadaAjaxListaSeguimientosFichaUCI() {
    var idProcedimientoForm = $("#idProcedimientoForm").get(0).value;
    var method = 'traerListaSeguimientosAjaxFichaUCI'
    
    /*LLAMADA AJAX*/
    var parametros = {
        "idProcedimiento": idProcedimientoForm
    };
    
    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: parametros,
        cache: false,                        
        success: function(data){
            $("#tabla_seguimientos").html(data);
        }
    });
}

function registrar_seguimiento(){
    var ficha= $("#idEspecialidadForm").get(0).value;
    
    if (ficha==codigos['estandar']) {
        llamadaAjaxFichaEstandar();
    } else if (ficha==codigos['neonato']){
        llamadaAjaxFichaNeonato();
    } else if (ficha==codigos['uci']){
        llamadaAjaxFichaUCI();
    }
}

function llamadaAjaxFichaEstandar() {
    var pacienteForm = $("#pacienteForm").get(0).value;
    var idProcedimientoForm = $("#idProcedimientoForm").get(0).value;
    var idEspecialidadForm = $("#idEspecialidadForm").get(0).value;
    var method = 'registrarSeguimientoAjaxFichaEstandar';
    
    /*CAMPOS*/    
    var presionArterialInput = $("#presionArterial_EST").get(0).value;
    var pulsoInput = $("#pulso_EST").get(0).value;
    var frecuenciaRespiratoriaInput = $("#frecuenciaRespiratoria_EST").get(0).value;
    var temperaturaInput = $("#temperatura_EST").get(0).value;
    var pesoInput = $("#peso_EST").get(0).value;
    var observacionInput = $("#observacion_EST").get(0).value;    
    
    /*VALIDACIONES*/
    var huboError=validacionesFichaEstandar(pacienteForm, presionArterialInput, pulsoInput, frecuenciaRespiratoriaInput, temperaturaInput, pesoInput, observacionInput);
    if (huboError=="error"){
        return;
    }
    
    /*LLAMADA AJAX*/
    var parametros = {
        "idProcedimiento": idProcedimientoForm,
        "presionArterial" : presionArterialInput,
        "pulso" : pulsoInput,
        "frecuenciaRespiratoria": frecuenciaRespiratoriaInput,
        "temperatura": temperaturaInput,
        "peso": pesoInput,
        "observacion": observacionInput
    };

    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: parametros,
        cache: false,                        
        success: function(data){
            mostrarMensajeTemporal("#mensajeControlExito", "Se guardó el seguimiento Estándar con éxito", 3000);
            limpiar_seguimiento();
            $("#collapseTwo").collapse("show");
            $("#collapseOne").collapse("hide");
            traerListaSeguimientos();
        }
    });
}

function llamadaAjaxFichaNeonato() {
    var pacienteForm = $("#pacienteForm").get(0).value;
    var idProcedimientoForm = $("#idProcedimientoForm").get(0).value;
    var idEspecialidadForm = $("#idEspecialidadForm").get(0).value;
    var method = 'registrarSeguimientoAjaxFichaNeonato';
    
    /*CAMPOS*/    
    var presionArterialInput = $("#presionArterial_NEO").get(0).value;
    var pulsoInput = $("#pulso_NEO").get(0).value;
    var frecuenciaRespiratoriaInput = $("#frecuenciaRespiratoria_NEO").get(0).value;
    var temperaturaInput = $("#temperatura_NEO").get(0).value;
    var pesoInput = $("#peso_NEO").get(0).value;
    var tallaInput = $("#talla_NEO").get(0).value;
    var perimetroCefalicoInput = $("#perimetroCefalico_NEO").get(0).value;
    var observacionInput = $("#observacion_NEO").get(0).value;    
    
    /*VALIDACIONES*/
    var huboError=validacionesFichaNeonato(pacienteForm, presionArterialInput, pulsoInput, frecuenciaRespiratoriaInput, temperaturaInput, pesoInput, tallaInput, perimetroCefalicoInput, observacionInput);
    if (huboError=="error"){
        return;
    }
    
    /*LLAMADA AJAX*/
    var parametros = {
        "idProcedimiento": idProcedimientoForm,
        "presionArterial" : presionArterialInput,
        "pulso" : pulsoInput,
        "frecuenciaRespiratoria": frecuenciaRespiratoriaInput,
        "temperatura": temperaturaInput,
        "peso": pesoInput,
        "talla": tallaInput,
        "perimetroCefalico": perimetroCefalicoInput,
        "observacion": observacionInput
    };

    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: parametros,
        cache: false,                        
        success: function(data){
            mostrarMensajeTemporal("#mensajeControlExito", "Se guardó el seguimiento de Neonato con éxito", 3000);
            limpiar_seguimiento();
            $("#collapseTwo").collapse("show");
            $("#collapseOne").collapse("hide");
            traerListaSeguimientos();
        }
    });
}

function llamadaAjaxFichaUCI() {
    var pacienteForm = $("#pacienteForm").get(0).value;
    var idProcedimientoForm = $("#idProcedimientoForm").get(0).value;
    var idEspecialidadForm = $("#idEspecialidadForm").get(0).value;
    var method = 'registrarSeguimientoAjaxFichaUCI';
    
    /*CAMPOS*/    
    var presionArterialInput = $("#presionArterial_UCI").get(0).value;
    var pulsoInput = $("#pulso_UCI").get(0).value;
    var frecuenciaRespiratoriaInput = $("#frecuenciaRespiratoria_UCI").get(0).value;
    var temperaturaInput = $("#temperatura_UCI").get(0).value;
    var pesoInput = $("#peso_UCI").get(0).value;
    var indiceGravedadInput = $("#indiceGravedad_UCI").get(0).value;
    var observacionInput = $("#observacion_UCI").get(0).value;    
    
    /*VALIDACIONES*/
    var huboError=validacionesFichaUCI(pacienteForm, presionArterialInput, pulsoInput, frecuenciaRespiratoriaInput, temperaturaInput, pesoInput, indiceGravedadInput, observacionInput);
    if (huboError=="error"){
        return;
    }
    
    /*LLAMADA AJAX*/
    var parametros = {
        "idProcedimiento": idProcedimientoForm,
        "presionArterial" : presionArterialInput,
        "pulso" : pulsoInput,
        "frecuenciaRespiratoria": frecuenciaRespiratoriaInput,
        "temperatura": temperaturaInput,
        "peso": pesoInput,
        "indiceGravedad": indiceGravedadInput,
        "observacion": observacionInput
    };

    $.ajax({
        type: "get",
        url: method,
        dataType: "text",                        
        data: parametros,
        cache: false,                        
        success: function(data){
            mostrarMensajeTemporal("#mensajeControlExito", "Se guardó el seguimiento de UCI con éxito", 3000);
            limpiar_seguimiento();
            $("#collapseTwo").collapse("show");
            $("#collapseOne").collapse("hide");
            traerListaSeguimientos();
        }
    });
}

function validacionesFichaEstandar(pacienteForm, presionArterialInput, pulsoInput, frecuenciaRespiratoriaInput, temperaturaInput, pesoInput, observacionInput){
    if (estaVacio(pacienteForm)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes seleccionar un paciente primero", 3000);
        return "error";
    }
    
    if (estaVacio(presionArterialInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una presión arterial", 3000);
        $("#presionArterial_EST").val("");
        return "error";
    } else if (!es_numero(presionArterialInput)){
        mostrarMensajeTemporal("#mensajeControl", "La presión arterial debe ser un número", 3000);
        $("#presionArterial_EST").val("");
        return "error";
    }
    
    if (estaVacio(pulsoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar un pulso", 3000);
        $("#pulso_EST").val("");
        return "error";
    } else if (!es_numero(pulsoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El pulso debe ser un número", 3000);
        $("#pulso_EST").val("");
        return "error";
    }
    
    if (estaVacio(frecuenciaRespiratoriaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una frecuencia respiratoria", 3000);
        $("#frecuenciaRespiratoria_EST").val("");
        return "error";
    } else if (!es_numero(frecuenciaRespiratoriaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La frecuencia respiratoria debe ser un número", 3000);
        $("#frecuenciaRespiratoria_EST").val("");
        return "error";
    }
    
    if (estaVacio(temperaturaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una temperatura", 3000);
        $("#temperatura_EST").val("");
        return "error";
    } else if (!es_numero(temperaturaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La temperatura debe ser un número", 3000);
        $("#temperatura_EST").val("");
        return "error";
    }
    
    if (estaVacio(pesoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar un peso", 3000);
        $("#peso_EST").val("");
        return "error";
    } else if (!es_numero(pesoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El peso debe ser un número", 3000);
        $("#peso_EST").val("");
        return "error";
    }
    
    if (estaVacio(observacionInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una observación", 3000);
        $("#observacion_EST").val("");
        return "error";
    }
    return "";
}

function validacionesFichaNeonato(pacienteForm, presionArterialInput, pulsoInput, frecuenciaRespiratoriaInput, temperaturaInput, pesoInput, tallaInput, perimetroCefalicoInput, observacionInput){
    if (estaVacio(pacienteForm)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes seleccionar un paciente primero", 3000);
        return "error";
    }
    
    if (estaVacio(presionArterialInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una presión arterial", 3000);
        $("#presionArterial_NEO").val("");
        return "error";
    } else if (!es_numero(presionArterialInput)){
        mostrarMensajeTemporal("#mensajeControl", "La presión arterial debe ser un número", 3000);
        $("#presionArterial_NEO").val("");
        return "error";
    }
    
    if (estaVacio(pulsoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar un pulso", 3000);
        $("#pulso_NEO").val("");
        return "error";
    } else if (!es_numero(pulsoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El pulso debe ser un número", 3000);
        $("#pulso_NEO").val("");
        return "error";
    }
    
    if (estaVacio(frecuenciaRespiratoriaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una frecuencia respiratoria", 3000);
        $("#frecuenciaRespiratoria_NEO").val("");
        return "error";
    } else if (!es_numero(frecuenciaRespiratoriaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La frecuencia respiratoria debe ser un número", 3000);
        $("#frecuenciaRespiratoria_NEO").val("");
        return "error";
    }
    
    if (estaVacio(temperaturaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una temperatura", 3000);
        $("#temperatura_NEO").val("");
        return "error";
    } else if (!es_numero(temperaturaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La temperatura debe ser un número", 3000);
        $("#temperatura_NEO").val("");
        return "error";
    }
    
    if (estaVacio(pesoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar un peso", 3000);
        $("#peso_NEO").val("");
        return "error";
    } else if (!es_numero(pesoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El peso debe ser un número", 3000);
        $("#peso_NEO").val("");
        return "error";
    }
    
    if (estaVacio(tallaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una talla", 3000);
        $("#talla_NEO").val("");
        return "error";
    } else if (!es_numero(tallaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La talla debe ser un número", 3000);
        $("#talla_NEO").val("");
        return "error";
    }
    
    if (estaVacio(perimetroCefalicoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar el perímetro cefálico", 3000);
        $("#perimetroCefalico_NEO").val("");
        return "error";
    } else if (!es_numero(perimetroCefalicoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El perímetro cefálico debe ser un número", 3000);
        $("#perimetroCefalico_NEO").val("");
        return "error";
    }
    
    if (estaVacio(observacionInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una observación", 3000);
        $("#observacion_NEO").val("");
        return "error";
    }
    return "";
}

function validacionesFichaUCI(pacienteForm, presionArterialInput, pulsoInput, frecuenciaRespiratoriaInput, temperaturaInput, pesoInput, indiceGravedadInput, observacionInput){
    if (estaVacio(pacienteForm)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes seleccionar un paciente primero", 3000);
        return "error";
    }
    
    if (estaVacio(presionArterialInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una presión arterial", 3000);
        $("#presionArterial_UCI").val("");
        return "error";
    } else if (!es_numero(presionArterialInput)){
        mostrarMensajeTemporal("#mensajeControl", "La presión arterial debe ser un número", 3000);
        $("#presionArterial_UCI").val("");
        return "error";
    }
    
    if (estaVacio(pulsoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar un pulso", 3000);
        $("#pulso_UCI").val("");
        return "error";
    } else if (!es_numero(pulsoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El pulso debe ser un número", 3000);
        $("#pulso_UCI").val("");
        return "error";
    }
    
    if (estaVacio(frecuenciaRespiratoriaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una frecuencia respiratoria", 3000);
        $("#frecuenciaRespiratoria_UCI").val("");
        return "error";
    } else if (!es_numero(frecuenciaRespiratoriaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La frecuencia respiratoria debe ser un número", 3000);
        $("#frecuenciaRespiratoria_UCI").val("");
        return "error";
    }
    
    if (estaVacio(temperaturaInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una temperatura", 3000);
        $("#temperatura_UCI").val("");
        return "error";
    } else if (!es_numero(temperaturaInput)){
        mostrarMensajeTemporal("#mensajeControl", "La temperatura debe ser un número", 3000);
        $("#temperatura_UCI").val("");
        return "error";
    }
    
    if (estaVacio(pesoInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar un peso", 3000);
        $("#peso_UCI").val("");
        return "error";
    } else if (!es_numero(pesoInput)){
        mostrarMensajeTemporal("#mensajeControl", "El peso debe ser un número", 3000);
        $("#peso_UCI").val("");
        return "error";
    }
    
    if (estaVacio(indiceGravedadInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar el índice de gravedad", 3000);
        $("#indiceGravedad_UCI").val("");
        return "error";
    } else if (!es_numero(indiceGravedadInput)){
        mostrarMensajeTemporal("#mensajeControl", "El índice de gravedad debe ser un número", 3000);
        $("#indiceGravedad_UCI").val("");
        return "error";
    }
    
    if (estaVacio(observacionInput)) {
        mostrarMensajeTemporal("#mensajeControl", "Debes agregar una observación", 3000);
        $("#observacion_UCI").val("");
        return "error";
    }
    return "";
}

function limpiarValoresFichaEstandar(){
    $("#presionArterial_EST").val("");
    $("#pulso_EST").val("");
    $("#frecuenciaRespiratoria_EST").val("");
    $("#temperatura_EST").val("");
    $("#peso_EST").val("");
    $("#observacion_EST").val("");
}

function limpiarValoresFichaNeonato(){
    $("#presionArterial_NEO").val("");
    $("#pulso_NEO").val("");
    $("#frecuenciaRespiratoria_NEO").val("");
    $("#temperatura_NEO").val("");
    $("#peso_NEO").val("");
    $("#talla_NEO").val("");
    $("#perimetroCefalico_NEO").val("");
    $("#observacion_NEO").val("");
}

function limpiarValoresFichaUCI(){
    $("#presionArterial_UCI").val("");
    $("#pulso_UCI").val("");
    $("#frecuenciaRespiratoria_UCI").val("");
    $("#temperatura_UCI").val("");
    $("#peso_UCI").val("");
    $("#indiceGravedad_UCI").val("");
    $("#observacion_UCI").val("");
}

function estaVacio(campo) {
    return campo==null || $.trim(campo)=="";
}

function mostrarMensajeTemporal(id, mensaje, tiempo) {
    $(id).html(mensaje);
    $(id).fadeIn();
    $(id).fadeOut(tiempo);
}

function limpiar_seguimiento() {
    var ficha= $("#idEspecialidadForm").get(0).value;
    
    if (ficha==codigos['estandar']) {
        limpiarValoresFichaEstandar();
    } else if (ficha==codigos['neonato']){
        limpiarValoresFichaNeonato();
    } else if (ficha==codigos['uci']){
        limpiarValoresFichaUCI();
    }
}

function mostrarFicha(){
    var ficha= $("#idEspecialidadForm").get(0).value;
    if (ficha==codigos['estandar']) {
        $("#ficha_estandar").show();
        $("#ficha_neonato").hide();
        $("#ficha_uci").hide();
    } else if (ficha==codigos['neonato']){
        $("#ficha_estandar").hide();
        $("#ficha_uci").hide();
        $("#ficha_neonato").show();
    } else if (ficha==codigos['uci']){
        $("#ficha_neonato").hide();
        $("#ficha_estandar").hide();
        $("#ficha_uci").show();
    }
    $("#collapseTwo").collapse("hide");
}


/*Validaciones*/
function es_numero(num) {
    return $.isNumeric(num);
}

function es_alfanumerico(texto) {
    return texto.match(/^[a-zA-Z0-9]+/);
}

function es_numero_entre(num, a, b) {
    return num>=a && num<=b;
}